The present invention relates generally to a method for reliable real-time multimedia streaming, and more particularly to a reliable real-time protocol for streaming data from a multimedia delivery system over a connectionless network offering best effort delivery services.
With the explosive growth of the Internet, there is a growing interest in using the Internet and other Internet protocol-based networks to deliver multimedia selections, such as video and audio material. Scalable, open-architecture multimedia systems are being used to store and retrieve multimedia data over the Internet. Interactive television, movies on demand, and other multimedia push technologies are among the more promising applications for use on these systems.
The Internet is a connectionless network offering best effort delivery service. Packets of data are routed as datagrams that carry the address of the intended recipient. A specific connection between the sender and the recipient is not required because all of host nodes on the network include the inherent capability to route datagrams from node to node until delivery is effected. This datagram packet delivery scheme is constructed as a best effort delivery system in which the delivery of datagram packets is not guaranteed.
In many cases, multimedia data requires real-time delivery. In the case of audio or video data, the data stream representing a particular media selection needs to be delivered in the proper sequence and within an abbreviated time period, to allow the user to play back the audio or video selection as it is being sent. The Real-Time Transport Protocol (RTP) is a current de facto standard for delivering real-time content over the Internet or other similar IP protocol based networks. RTP replaces the conventional transmission control protocol (TCP) and other transport layer protocols with a framework that real-time applications can use for real-time data transport. Currently, the RTP standard supports a first type of message for carrying or streaming the media content data. A separate protocol, the Real-Time Control Protocol (RTCP), is typically used in conjunction with RTP to pass control messages for session management, flow control, error correction and other system functions.
While RTP provides framework for delivering multimedia streaming data over computer networks, it does not provide reliable real-time/near real-time delivery when using best effort network services such as those provided by the Internet. The present invention solves this problem by implementing a Reliable protocol and a Best Feasible real-time protocol for streaming data across a network providing best effort unreliable network services.
Each of the real-time protocols in the present invention are based on the well-known Real-time Transport Protocol (RTP) suite which provides the framework for the implementation of near real-time reliable data delivery over non real-time unreliable data link layer technologies (e.g., Ethernet). These protocols provide near real-time reliable or best feasible data streaming while utilizing best effort unreliable network services (e.g., Internet). Under the Reliable protocol, an entire data block, including any missing or lost data packets, is reconstructed from all of the individual data packets through the use of a selective negative acknowledgement (NACK) mechanism. In contrast, the Best Feasible protocol sacrifices some of the data packet's reliability by not retransmitting "late" packets. An additional timing parameter encapsulated in the NACK message will facilitate the determination of whether it's still "feasible" to retransmit a missing data packet. A real-time identification technique has been incorporated into the format of each transmitted data packet that allows for the identification of both its sender and intended recipient(s) without having to call any underlying socket specific functions.